<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
<title>Обмен короткими сообщениями (чат)</title>
<link href="ice.css" type="text/css" rel="stylesheet"/>
</head>
<body>
<p><b>Distributed Network Messaging Protocol</b></p>

<p>Коммерческое использование только с разрешения автора.<br>
При использовании необходимо явно указывать ссылку на источник.</p>

<p>Sergey Bodrov, 2014-07-21</p>

<p>
Сообщение содержит:<br>
<li>дату-время создания
<li>имя автора
<li>GUID автора
<li>имя получателя
<li>GUID получателя
<li>формат сообщения
<li>текст сообщения
</p>

<p>Сервис CHAT предназначен для обмен короткими (до 1Кбайт) сообщениями между пользователями. Сообщения могут быть как текстовыми, так и мультимедийными (звук, видео). Также возможна оргранизация независимого сеанса связи между абонентами, при этом сообщения CHAT играют роль "служебного" канала связи.</p>


<p><b>Формат сообщений DNMP</b></p>

<p>
<u>Обязательные реквизиты для всех сообщений</u><br>
Тип: <b>CHAT</b><br>
Параметры:<br>
<b>timestamp</b> - таймштамп сообщения<br>
<b>author_name</b> - имя автора сообщения<br>
<b>author_guid</b> - GUID автора сообщения<br>
<b>target_name</b> - имя получателя сообщения<br>
<b>target_guid</b> - GUID получателя сообщения<br>
<b>cmd</b> - команда<br>
</p>

<p><b>Команды:</b></p>
[S] - Cервис на узле<br>
[C] - Клиент<br>
[SС] - Сервис на узле и клиент<br>

<p>
<b>MSG</b><br>
Отправка короткого текстового сообщения.<br>
[SC] Если абонент в "черном списке", то возвращаем отказ.<br>
<br>
Параметры:<br>
cmd=MSG<br>
req - требуется отчет о доставке
<br>
Данные:<br>
Текст сообщения<br>
</p>


<p>
<b>INVITE</b><br>
Вызов абонента, приглашение начать беседу. В ответ вызываемый абонент присылает согласие (ACK) или отказ (BYE). В параметрах может быть указан формат беседы - голосовая, видео, итд.. По умолчанию текстовый формат.<br>
[SC] Если абонент в "черном списке", то возвращаем отказ.<br>
<br>
Параметры:<br>
cmd=INVITE<br>
<br>
Данные:<br>
Текст сообщения приглашения<br>
</p>


<p>
<b>ACK</b><br>
Прием вызова абонента, начало беседы. В параметрах может быть указан формат беседы - голосовая, видео, итд.. По умолчанию текстовый формат.<br>
<br>
Параметры:<br>
cmd=ACK<br>
<br>
Данные:<br>
Текст сообщения приветствия<br>
</p>


<p>
<b>BYE</b><br>
Отказ вызова абонента, завершение беседы.<br>
<br>
Параметры:<br>
cmd=BYE<br>
<br>
Данные:<br>
Текст описания отказа<br>
</p>


</body>
</html>